/**
*	@file GNode.h
*
*	@brief this header defines GNode structure which is for CFG
*
*	@author li yuchen
*
*	@date 1/28/2011
*/
#ifndef GNode_H
#define GNode_H
#include "TNode.h"
using namespace std;

/**	
*	@brief node structure in the CFG
*		if start_line = end_line = 0 then it is the start_node
*		if start_line = end_line = -1 then it is the end_node
*/
struct GNode{	
	/**	@brief for a non-branch node next_right will be NULL */
	GNode* next_a;
	GNode* next_b;

	StmtNum stmt_num;
	TNodeType g_type;
};

GNode* CreateGNode(TNodeType g_type, StmtNum stmt_num);

#endif